package com.yiqi.zhiyuan.feature.msg.contract;

import com.suozhang.framework.entity.bo.PageData;
import com.suozhang.framework.framework.BasePresenter;
import com.suozhang.framework.framework.BaseView;
import com.yiqi.zhiyuan.entity.vo.MessageTypeVO;
import com.yiqi.zhiyuan.entity.vo.MsgVO;

import java.util.List;

import io.reactivex.Observable;

/**
 * @ProjectName: ZhiYuan
 * @Description: java类作用描述
 * @Author: lijuwen
 * @CreateDate: 2019/3/14 10:45
 * @UpdateUser: 更新者
 * @UpdateDate: 2019/3/14 10:45
 * @UpdateRemark: 更新说明
 * @Version: 1.0
 */
public interface MessageContract {

    interface Model {


        /**
         * 消息分类列表数据
         *
         * @param
         * @return
         */
        Observable<MsgVO> doNotification();

        /**
         * 消息分类列表数据
         *
         * @param
         * @return
         */
        Observable<PageData<MessageTypeVO>> doMessageList(int type, int page);
    }

    interface View extends BaseView {

        /**
         * 获取成功
         */
        void showMessageSuccess(MsgVO list);
        /**
         * 获取成功
         */
        void showMessageListSuccess(List<MessageTypeVO> list);


        /**
         * 获取失败
         */
        void showMessageListError(String errorMsg);

        void showMessageListEmpty();

        void showMessageListMoreSuccess(List<MessageTypeVO> list);

        void showMessageListMoreError(String errorMsg);

    }

    interface Presenter extends BasePresenter {

        /**
         * 消息分类列表数据
         *
         * @param
         * @return
         */
        void doNotification();
        /**
         * 消息分类列表数据
         *
         * @param
         * @return
         */
        void doMessageList(int type, int page);

        /**
         * 消息分类列表数据
         *
         * @param
         * @return
         */
        void doMessageMoreList(int type, int page);

    }
}
